@echo off
chcp 65001 >nul

echo === Spring Cloud 断路器测试脚本 ===
echo.

REM 测试参数
set BASE_URL=http://localhost:16000
set USER_ID=1
set TEST_COUNT=10

echo 测试配置:
echo - 服务地址: %BASE_URL%
echo - 用户ID: %USER_ID%
echo - 测试次数: %TEST_COUNT%
echo.

REM 测试断路器A保护的购物车服务
echo === 测试断路器A (购物车服务) ===
echo 断路器A配置: 失败率阈值30%%, 最小请求数5
echo.

for /l %%i in (1,1,%TEST_COUNT%) do (
    echo 测试 %%i/%TEST_COUNT% - 购物车服务
    curl -s "%BASE_URL%/cart/getCartById/%USER_ID%"
    echo.
    echo ---
    timeout /t 1 /nobreak >nul
)

echo.
echo === 测试断路器B (用户详细信息服务) ===
echo 断路器B配置: 失败率阈值50%%, 慢调用阈值30%%, 最小请求数5
echo.

for /l %%i in (1,1,%TEST_COUNT%) do (
    echo 测试 %%i/%TEST_COUNT% - 用户详细信息服务
    curl -s "%BASE_URL%/cart/getUserDetail/%USER_ID%"
    echo.
    echo ---
    timeout /t 1 /nobreak >nul
)

echo.
echo === 测试完成 ===
echo.
echo 测试说明:
echo 1. 如果服务提供者正常运行，应该看到正常的响应
echo 2. 如果停止服务提供者，断路器会在达到阈值后触发
echo 3. 断路器A会在失败率超过30%%时触发
echo 4. 断路器B会在失败率超过50%%或慢调用超过30%%时触发
echo 5. 触发后会自动返回降级响应
echo.
echo 监控建议:
echo - 查看应用日志观察断路器状态变化
echo - 访问Eureka控制台查看服务状态
echo - 观察降级方法的执行情况
echo.
pause 